package crm.model;

import java.util.TreeSet;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.Serializable;

@SuppressWarnings("serial")
public class ArbolContenedor implements Serializable
{
	String fichero = "Clientes.crm";
	public TreeSet<Cliente> contenedor = new TreeSet<Cliente>();
	
	/**
	 * Este constructor se encarga de leer el arbol del disco y ponerlo en memoria.
	 */
	public ArbolContenedor()
	{
		/*
		try
		{
			ObjectInputStream lector = new ObjectInputStream(new FileInputStream(fichero));
			contenedor = (TreeSet)lector.readObject();//Paso el arbol a memoria
			lector.close();
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}*/
		
	}
	
	/**
	 * Este metodo guarda el arbol en el disco.
	 * @throws FileNotFoundException
	 * @throws IOException
	 */
	public void guardarContenedor() throws FileNotFoundException, IOException
	{
		MiObjectOutputStream almacenaje = new MiObjectOutputStream(new FileOutputStream (fichero));
		almacenaje.writeObject(contenedor);
		almacenaje.close();
	}
	
	/**
	 * Recibe un objeto del tipo cliente para almacenarlo en el arbol
	 * @param cli
	 */
	public void add(Cliente cli)
	{
		contenedor.add(cli);
	}
	
	public void rescatarArbol()
	{
		try
		{
			ObjectInputStream lector = new ObjectInputStream(new FileInputStream(fichero));
			contenedor = (TreeSet)lector.readObject();//Paso el arbol a memoria
			lector.close();
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}
	
	public void printAll()
	{
		contenedor.toString();
		/*
		for(int i=0;i<contenedor.size();i++)
		{
			contenedor.toString();
		}*/
	}
	
	

}
